Traditionally, caching techniques have involved storing a subset of data in random access memory (RAM), which provides significantly faster access to the data than disk-based storage. It is usually desirable to avoid reading the data from disk because disk access is often two or more orders of magnitude slower than accessing the same data stored in RAM. A frequent limitation to RAM, however, is that it is prohibitively expensive and thus too limited in size to contain all of the necessary data.
In recent years, several new disk technologies have emerged, which are flash-based and which use semiconductor technology. For example, flash-based solid state disks (SSD) are devices that use microchips which retain data in non-volatile memory chips and contain no moving parts. Unlike hard drive based disks, SSDs are typically less susceptible to physical shock, are usually silent, and have lower access time and latency for data access. In many cases, SSDs are only one order of magnitude slower than RAM and therefore provide a significant speed advantage over hard drive disks, especially for performing data reads.
It has therefore become desirable to utilize certain caching techniques that specifically take advantage of these new disk technologies (e.g. flash-based SSD based storage), especially when such technologies are utilized in combination with random access memory. It is also desirable to bridge the management of the data stored across multiple forms of storage and to make that data management appear seamless to users and applications. Applicants have identified these, as well as numerous other needs that currently exist in the art in coming to conceive the subject matter of the present disclosure.